package com.zeng.ssm.util;

import java.math.BigDecimal;
import java.text.DecimalFormat;

/**
 * 描述信息
 *
 * @author zengwanlin
 * @date 2023-01-06T10:48
 */
public class NumberUtil {

    /**
     * 金额格式
     */
    public static final String AMOUNT_PATTERN = "#0.00";

    /**
     * 金额格式
     */
    public static final String CURRENCY_PATTERN = "#,##0.00";

    /**
     * 利率格式
     */
    public static final String RATE_PATTERN = "#0.000000";

    /**
     * 利率(%)格式
     */
    public static final String RATE_PERCENT_PATTERN = "#0.0000";

    /**
     * 格式化Amount
     *
     * @param amount 金额
     * @return amount为空时返回null，否则返回<strong> #.00 </strong>格式金额字符串
     */
    public static String formatAmount(BigDecimal amount) {
        if (amount == null) {
            return null;
        }
        return new DecimalFormat(AMOUNT_PATTERN).format(amount);
    }

    /**
     * 格式化Currency
     *
     * @param currency 金额
     * @return currency为空时返回null，否则返回<strong> #,##0.00 </strong>格式金额字符串
     */
    public static String formatCurrency(BigDecimal currency) {
        if (currency == null) {
            return null;
        }
        return new DecimalFormat(CURRENCY_PATTERN).format(currency);
    }

    /**
     * 格式化Rate
     *
     * @param rate 利率
     * @return rate为空时返回null，否则返回<strong> #.000000 </strong>格式金额字符串
     */
    public static String formatRate(BigDecimal rate) {
        if (rate == null) {
            return null;
        }
        return new DecimalFormat(RATE_PATTERN).format(rate);
    }

    /**
     * 格式化RatePercent
     *
     * @param ratePercent 利率
     * @return rate为空时返回null，否则返回<strong> #.0000 </strong>格式金额字符串
     */
    public static String formatRatePercent(BigDecimal ratePercent) {
        if (ratePercent == null) {
            return null;
        }
        return new DecimalFormat(RATE_PERCENT_PATTERN).format(ratePercent);
    }

}
